An important aspect of the design and development of a computer program is debugging which is intended to locate and identify errors in a computer program under development. Typically, a programmer uses another computer program commonly known as a “debugger” to debug a program under development. A user may debug different computer programs or may repetitively debug the same computer program during multiple debugger sessions. The debugging is implemented by executing a debugger script.
Conventional debuggers typically support two primary operations to assist a computer programmer. A first operation supported by conventional debuggers is a step function which permits a computer programmer to process program lines (also referred to as instructions or statements), one at a time in a computer program and see the results of each instruction upon completion. A second operation supported by conventional debuggers is the breakpoint operation which permits a computer programmer to identify a breakpoint as a precise instruction (identified by a instruction line number) at which execution of a computer program can be (conditionally or unconditionally) halted. As a computer program is executed by a debugger, the program executes in a normal fashion until a breakpoint is reached, the program can stop execution and the debugger can display the results of the computer program to the programmer for analysis.
The breakpoints are commonly directly tied to a specific line in the program. If the program is altered by an addition of a new program line and additionally or alternatively, by a removal of a program line, the definition of the breakpoint can be erroneous.
Accordingly, after the program is altered the programmer has to manually check that the breakpoint definitions are still valid. This manual stage is time consuming and also prevents the debugger from being incorporated into periodical (automatic) software tests, including software regression tests.
There is a need to provide efficient debugger script evaluation tools.